import { createI18n } from 'vue-i18n'
import zh from './zh.js'
import en from './en.js'

// 获取系统语言设置
const getSystemLanguage = () => {
  const systemLang = navigator.language || navigator.languages[0]
  // 提取语言代码，例如 'zh-CN' -> 'zh', 'en-US' -> 'en'
  const langCode = systemLang.split('-')[0]
  return langCode
}

// 获取语言设置的优先级：系统语言 > 本地存储 > 默认语言
const getPreferredLanguage = () => {
  const systemLang = getSystemLanguage()
  const savedLanguage = localStorage.getItem('language')
  
  // 支持的语言列表
  const supportedLanguages = ['zh', 'en']
  
  // 优先使用系统语言（如果支持）
  if (supportedLanguages.includes(systemLang)) {
    return systemLang
  }
  
  // 其次使用本地存储的语言（如果支持）
  if (savedLanguage && supportedLanguages.includes(savedLanguage)) {
    return savedLanguage
  }
  
  // 最后使用默认语言
  return 'zh'
}

const preferredLanguage = getPreferredLanguage()

const i18n = createI18n({
  legacy: false, // 使用 Composition API 模式
  locale: preferredLanguage, // 设置默认语言
  fallbackLocale: 'zh', // 回退语言
  messages: {
    zh,
    en
  },
  // 在生产环境中禁用警告
  silentTranslationWarn: true,
  silentFallbackWarn: true
})

// 导出切换语言的方法
export const switchLanguage = (lang) => {
  console.log('lang=:',lang)  
  i18n.global.locale.value = lang
  localStorage.setItem('language', lang)
  document.documentElement.lang = lang
}

// 导出获取当前语言的方法
export const getCurrentLanguage = () => {
  return i18n.global.locale.value
}

// 导出可用语言列表
export const languages = [
  { code: 'zh', name: '中文' },
  { code: 'en', name: 'English' }
]
window.winSwitchLanguage = switchLanguage
export default i18n 